// pages/voice2textorigin/index.js
const app = getApp();
//引入插件：微信同声传译
const plugin = requirePlugin('WechatSI');
//获取全局唯一的语音识别管理器recordRecoManager
const manager = plugin.getRecordRecognitionManager();
// 语音识别 (目前支持 zh_CN（中国大陆）, en_US（英语）, zh_HK（粤语）, sichuanhua（四川话）)
// 文本翻译 (目前支持 zh_CN（中国大陆）,  en_US（英语）)
// 语音合成 (目前支持 zh_CN（中国大陆）,  en_US（英语）)
Page({

  /**
   * 页面的初始数据
   */
  data: {
    content: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(111);
    this.initRecord()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log(222);
    this.getRecordAuth()
  },

  // 权限询问
  getRecordAuth: function() {
    wx.getSetting({
      success: (res) => {
        console.log("succ")
        console.log(res)
        if (!res.authSetting['scope.record']) {
          // this.startRecord()
          wx.authorize({
            scope: 'scope.record',
            success() {
                // 用户已经同意小程序使用录音功能，后续调用 wx.startRecord 接口不会弹窗询问
                console.log("succ auth")
            }, fail() {
                console.log("fail auth")
            }
          })
        } else {
          console.log("record has been authed")
        }
      }, fail(res) {
          console.log("fail")
          console.log(res)
      }
    })
  },

  startRecord(){
   manager.start({
    duration: 60000, //指定录音时长， 单位ms，最大为60s
    lang: 'zh_CN', //识别的语言，目前支持zh_CN  en_US  zh_HK
   })
  },
  
  stopRecord(){
    manager.stop() //结束识别
  },

  initRecord(){
    const that = this;
    // 有新的识别内容返回，则会调用此事件
    manager.onRecognize = function (res) {
      // res  识别的结果
      console.log(res)
    }
    // 正常开始录音识别时会调用此事件
    manager.onStart = function (res) {
      // res回调结果，默认OK
      console.log("成功开始录音识别", res)
    }
    // 识别错误事件
    manager.onError = function (res) {
      // 回调结果 {retcode  错误码  msg 错误信息} = res
      console.error("error msg", res)
    }
    //识别结束事件
    manager.onStop = function (res) {
      console.log('..............结束录音')
      console.log('录音临时文件地址 -->' + res.tempFilePath); 
      console.log('录音总时长 -->' + res.duration + 'ms'); 
      console.log('文件大小 --> ' + res.fileSize + 'B');
      console.log('语音内容(最终识别的结果) --> ' + res.result);
      if (res.result == '') {
        wx.showModal({
          title: '提示',
          content: '听不清楚，请重新说一遍！',
          showCancel: false,
          success: function (res) {}
        })
        return;
      }
      var text = that.data.content + res.result;
      that.setData({
        content: text
      })
    }
  },
})